1. Field of the Invention
The present invention relates to computer-implemented techniques for assisting in the completion of text inputted by a user and, more particularly, to identifying candidate text to input into a text field based on text typed by a user into the text field.
2. Related Art
Computer software has long been used to reduce the effort that computer users need to expend to provide textual input. For example, conventional word processing software typically supports macros, which may be pre-defined by the software vendor and/or defined by the user, for replacing a short text string typed by the user with a longer text string, thereby eliminating the need for the user to manually type the longer text string. For example, consider a macro which defines the text “Sincerely yours” as a replacement for the text “sy”. When the user types “sy”, the word processor may automatically replace “sy” with “Sincerely yours”.
The word processor may maintain multiple macros, each of which defines a mapping between source text (the text typed by the user) and replacement text. As the user types, the word processor determines whether the text most recently typed by the user matches the source text of any existing macro. If such a match is found, the word processor replaces the typed source text with the corresponding replacement text defined by the macro. This feature is implemented, for example, in the widely used Microsoft Word word processor as part of the “AutoCorrect” feature.
Another technique that some computer software uses to reduce the number of keystrokes required to be typed by the user is the following. As the user types, the software attempts to match the most-recently typed text against text previously typed by the user in the same context. For example, in some web browsers, as the user types the web address (URL) of a web site in the address bar, the web browser attempts to match the address being typed by the user with addresses previously typed by the user. As the user types, the web browser displays a list of matches.
For example, assume that the user has previously typed “www.google.com”, “www.books.com”, “www.booksamillion.com”, and “www.booksense.com” into the address bar. If the user next begins typing “www” into the address bar, the web browser may display all four previously-typed addresses below the address bar, because “www” matches the beginning of all such addresses.
If the user continues to type “www.books”, the web browser will eliminate “ww.google.com” from the list of possible matches because it no longer matches the text being typed by the user. The list will still, however, display “www.books.com”, “www.booksamillion.com”, and “www.booksense.com” in the list, because all three of these previously-typed addresses match the text being typed by the user. As the user continues to type, any address having leading text that does not match the typed text will be eliminated from the list of potential matches.
At any point, the user may select one of the addresses in the list of possible matches (such as by using a mouse to click on the address or by using the arrow and ENTER keys on the keyboard), thereby causing the selected address to be entered into the address bar, and thereby eliminating the need for the user to manually type the entire address. This can save the user significant time and effort, particularly when the address selected is very long. This feature has been used more generally in various other kinds of software requiring the user to type text into the same form fields on multiple occasions.
Users stand to benefit from additional features which reduce the number of keystrokes required to be made by the user.